package com.ego.passport.service.impl;

import com.ego.commons.pojo.EgoResult;
import com.ego.commons.utils.IDUtils;
import com.ego.dubbo.service.TbUserDubboService;
import com.ego.passport.service.PassportService;
import com.ego.pojo.TbUser;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Service;
import org.springframework.util.DigestUtils;
import java.util.Date;

/**
 * @author ghp
 */

@Service
public class PassportServiceImpl implements PassportService {
    @Reference
    private TbUserDubboService tbUserDubboService;
    @Override
    public EgoResult check(TbUser tbUser) {
        TbUser user = tbUserDubboService.selectByUser(tbUser);
        if(user==null){
            return EgoResult.ok();
        }
        return EgoResult.error("已经存在");
    }

    @Override
    public EgoResult register(TbUser tbUser) {
        tbUser.setId(IDUtils.genItemId());
        Date date = new Date();
        tbUser.setCreated(date);
        tbUser.setUpdated(date);
        // 密码进行加密
        // 在公司中提供基础框架的项目经理或架构师一定会提供一个工具类，用作加密。
        // 在当前项目中直接使用Spring Framework 工具类
        String pwdMd = DigestUtils.md5DigestAsHex(tbUser.getPassword().getBytes());
        tbUser.setPassword(pwdMd);
        int index = tbUserDubboService.insert(tbUser);
        if(index==1){
            return EgoResult.ok();
        }
        return EgoResult.error("注册失败");
    }

   /* @Override
    public EgoResult register(TbUser tbUser) {
        tbUser.setId(IDUtils.genItemId());
        Date date = new Date();
        tbUser.setCreated(date);
        tbUser.setUpdated(date);
        // 密码进行加密
        // 在公司中提供基础框架的项目经理或架构师一定会提供一个工具类，用作加密。
        // 在当前项目中直接使用Spring Framework 工具类
        String pwdMd = DigestUtils.md5DigestAsHex(tbUser.getPassword().getBytes());
        tbUser.setPassword(pwdMd);
        int index = tbUserDubboService.insert(tbUser);
        if(index==1){
            return EgoResult.ok();
        }
        return EgoResult.error("注册失败");
    }

    @Override
    public EgoResult login(TbUser tbUser) {
        return null;
    }*/
}
